<?php
class AdminsController extends AppController {

	var $name = 'Admins';
	var $use = array('Usuario');
	var $layout = 'admin_layout';

	/**
	 * Acceso a zona de administracion: pantalla vacia
	 */
	function index() {
		
	}
	
	/**
	 * Gestion de administradores
	 */
	function administradores() {
		$this->Admin->recursive = 0;
		$this->set('admins', $this->paginate());
	}

	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Admin erróneo', true));
			$this->redirect(array('action' => 'administradores'));
		}
		$this->set('admin', $this->Admin->read(null, $id));
	}

	function add() {
		if (!empty($this->data)) {
			$this->Admin->create();
			if ($this->Admin->save($this->data)) {
				$this->Admin->Usuario->updateAll(array('Usuario.permiso_id' => $this->data['Admin']['permiso_id']), array('Usuario.id' => $this->data['Admin']['usuario_id']));
				$this->Session->setFlash(__('Has creado un nuevo administrador', true));
				$this->redirect(array('action' => 'administradores'));
			} else {
				$this->Session->setFlash(__('El administrador no se ha podido crear. Por favor, inténtalo de nuevo', true));
			}
		}
		$usuarios = $this->Admin->Usuario->find('list');
		$permisos = $this->Admin->Usuario->Permiso->find('list', array('conditions' => array('id >' => 3)));
		$this->set(compact('usuarios', 'permisos'));
		$this->set('data', $this->data);
	}

	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Admin erróneo', true));
			$this->redirect(array('action' => 'administradores'));
		}
		if (!empty($this->data)) {
			if ($this->Admin->save($this->data)) {
				$this->Session->setFlash(__('El administrador se ha modificado', true));
				$this->redirect(array('action' => 'administradores'));
			} else {
				$this->Session->setFlash(__('El administrador no se ha podido modificar. Por favor, inténtelo de nuevo', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Admin->read(null, $id);
		}
		$usuarios = $this->Admin->Usuario->find('list');
		$this->set(compact('usuarios'));
	}

	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Admin erróneo', true));
			$this->redirect(array('action'=>'administradores'));
		}
		if ($this->Admin->delete($id)) {
			$this->Session->setFlash(__('Administrador eliminado', true));
			$this->redirect(array('action'=>'administradores'));
		}
		$this->Session->setFlash(__('El administrador no fue eliminado', true));
		$this->redirect(array('action' => 'administradores'));
	}
	
	function cambiar_permisos($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Admin errónea', true));
			$this->redirect(array('action'=>'administradores'));
		}
		//TODO
	}
	
	function desactivar($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Usuario erróneo', true));
			$this->redirect(array('action' => 'administradores'));
		}
		if ($this->Admin->updateAll(array('Admin.activo' => '0'), array('Admin.id' => $id))) {
			$this->Session->setFlash(__('El administrador se ha desactivado correctamente', true));
		} else {
			$this->Session->setFlash(__('Ocurrió algún problema al desactivar el administrador. Por favor, inténtalo de nuevo.', true));
		}
		$this->redirect(array('action' => 'administradores'));
	}
	
	function activar($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Usuario erróneo', true));
			$this->redirect(array('action' => 'administradores'));
		}
		if ($this->Admin->updateAll(array('Admin.activo' => '1'), array('Admin.id' => $id))) {
			$this->Session->setFlash(__('El administrador se ha activado correctamente', true));
		} else {
			$this->Session->setFlash(__('Ocurrió algún problema al activar el administrador. Por favor, inténtalo de nuevo.', true));
		}
		$this->redirect(array('action' => 'administradores'));
	}
	
	/**
	 * Gestion de usuarios
	 */
	function usuarios(){
		$this->redirect('/admin/usuarios/');
	}
	
	/**
	 * Gestion de datos de usuarios
	 */
	function datos_usuarios(){
		
	}
	
}
